import { getToken,setToken,removeToken } from "@/utils/auth";
import {  getUserProfile,getUserProfileById} from "@/api/user";

export default {
  namespaced: true,
  state: {
    // getToken()优先从cookie中获取token
   
    token:getToken()||'',  //保存token
   
    userInfo:{}
   
  },
  mutations: {
    // 更新存储token
    updataToken(state,token){
      state.token=token
      // 将token存储到cookie中实现持久化
      setToken(token)
    },
    // 清空token
    delToken(state){
      state.token=''
      // 清空cookie中的token  //直接调用清除token的方法
      removeToken()
    },
    // 更新用户数据
    updataUserInfo(state,info){
    state.userInfo=info

 
  },
     // },删除用户数据
     delUserInfo(state){
      state.userInfo={}
    }
 
},

actions: {
  //获取用户信息    发送请求 获取用户信息 存储到vuex中  重新定义getUserInfo()函数
async  getUserInfo(context){
  try {
    const res=await getUserProfile()
    console.log('res222',res.data); 
    const info= await  getUserProfileById(res.data.userId)
    console.log('info',info);  //info.data
    console.log("info.data",info.data); //staffPhoto   这是用户图片

    // context.commit('mutation函数名',res.data)   这里因为要获取用户信息和照片  所以都需要  就展开合并
    context.commit('updataUserInfo',{...res.data,...info.data})   //提交至上面的mutation中  所有修改更新都在mutation中完成


  } catch (error) {
    console.log(error);
  }


  },
  // 退出登录
async logout(context){
  //  退出时  删除token
  context.commit('delToken')
  // 删除用户数据(userInfor)
  context.commit('delUserInfo')
  }
}
}
